#!/usr/bin/env python
"""
专门处理用户3的Logo生成任务
"""
import os
import django
import json
import time

# 设置Django环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'keep_project0.settings')
django.setup()

from tools.myredis import mredis
from base.task import generate_user_logo_task

def process_user3_task():
    """处理用户3的Logo生成任务"""
    print("=== 处理用户3的Logo生成任务 ===")
    
    # 1. 检查队列状态
    print("1. 检查队列状态...")
    queue_items = mredis.list_lrange('logo_generation_queue', 0, -1)
    print(f"   队列中有 {len(queue_items)} 个任务")
    
    if queue_items:
        for i, item in enumerate(queue_items):
            try:
                task_data = json.loads(item)
                print(f"   任务 {i+1}: 用户ID {task_data.get('user_id')}")
            except:
                print(f"   任务 {i+1}: {item}")
    
    # 2. 检查用户3的当前结果
    print("2. 检查用户3的当前结果...")
    result_data = mredis.get('logo_result_3')
    if result_data:
        try:
            result = json.loads(result_data)
            print(f"   用户3已有结果: {result.get('success', False)} - {result.get('message', 'N/A')}")
            if result.get('success'):
                print(f"   Logo URL: {result.get('image_url', 'N/A')}")
        except:
            print(f"   用户3原始结果: {result_data}")
    else:
        print("   用户3暂无结果")
    
    # 3. 手动执行任务处理
    print("3. 手动执行任务处理...")
    try:
        generate_user_logo_task()
        print("   任务处理完成！")
    except Exception as e:
        print(f"   任务处理失败: {e}")
        return
    
    # 4. 再次检查结果
    print("4. 检查处理后的结果...")
    result_data = mredis.get('logo_result_3')
    if result_data:
        try:
            result = json.loads(result_data)
            print(f"   用户3处理结果: {result.get('success', False)} - {result.get('message', 'N/A')}")
            if result.get('success'):
                print(f"   Logo URL: {result.get('image_url', 'N/A')}")
        except:
            print(f"   用户3原始结果: {result_data}")
    else:
        print("   用户3仍无结果")
    
    # 5. 检查队列是否已清空
    print("5. 检查队列状态...")
    queue_items = mredis.list_lrange('logo_generation_queue', 0, -1)
    print(f"   队列中剩余 {len(queue_items)} 个任务")
    
    print("=== 处理完成 ===")

if __name__ == '__main__':
    process_user3_task()
